const BASE_URL = 'http://localhost:8004/api/v2/att'; // 你的 API 地址

/**
 * 密码登录
 * @param {string} phone - 手机号
 * @param {string} password - 密码
 * @returns {Promise} - 返回登录结果
 */
export const loginByPassword = (phone, password) => {
  return new Promise((resolve, reject) => {
    uni.request({
      url: BASE_URL + '/login', // 注意检查实际路径是否为/login还是/attendee/login
      method: 'POST',
      data: { phone, password },
      header: {
        'Content-Type': 'application/json'
      },
      success: (res) => {
        // 统一处理200状态码的响应
        resolve(res); // 传递完整响应对象到前端
      },
      fail: (err) => {
        reject(err);
      }
    });
  });
};


/**
 * 验证码登录
 * @param {string} phone - 手机号
 * @param {string} code - 验证码
 * @returns {Promise} - 返回登录结果
 */
export const loginByCode = (phone, code) => {
  return new Promise((resolve, reject) => {
    uni.request({
      url: BASE_URL + '/login', // 修改为后端实际的登录路径
      method: 'POST',
      data: { 
        phone: phone,
        captcha: code // 参数名改为后端接收的captcha
      },
      success: (res) => {
        if (res.statusCode === 200) {
          resolve(res.data);
        } else {
          reject(res.data);
        }
      },
      fail: (err) => {
        reject(err);
      },
    });
  });
};
// 验证码获取流程拆分为两部分
// 1. 获取图形验证码
export const getGraphCaptcha = () => {
  return new Promise((resolve, reject) => {
    uni.request({
      url: BASE_URL + '/notify',
      method: 'GET',
      responseType: 'arraybuffer', // 重要！用于接收图片数据
      success: (res) => {
        if (res.statusCode === 200) {
          // 在uniapp中可能需要特殊处理图片数据
          // 这里只是示意，实际处理可能需要根据uniapp的API调整
          const base64 = uni.arrayBufferToBase64(res.data);
          resolve(`data:image/jpeg;base64,${base64}`);
        } else {
          reject(res.data);
        }
      },
      fail: (err) => {
        reject(err);
      },
    });
  });
};
// 2. 发送短信验证码
export const sendSmsCode = (phone, captcha) => {
  return new Promise((resolve, reject) => {
    uni.request({
      url: BASE_URL + '/captcha',
      method: 'POST',
      data: {
        phone: phone,
        captcha: captcha
      },
      success: (res) => {
        if (res.statusCode === 200) {
          resolve(res.data);
        } else {
          reject(res.data);
        }
      },
      fail: (err) => {
        reject(err);
      },
    });
  });
};
/**
 * 重置密码
 * @param {string} phone - 手机号
 * @param {string} code - 验证码
 * @param {string} newPassword - 新密码
 * @returns {Promise} - 返回重置结果
 */
export const resetPassword = (phone, code, newPassword) => {
  return new Promise((resolve, reject) => {
    uni.request({
      url: BASE_URL + '/resetPassword',
      method: 'POST',
      data: { phone, code, newPassword },
      success: (res) => {
        if (res.statusCode === 200) {
          resolve(res.data);
        } else {
          reject(res.data);
        }
      },
      fail: (err) => {
        reject(err);
      },
    });
  });
};

/**
 * 注册
 * @param {string} phone - 手机号
 * @param {string} password - 密码
 * @param {string} email - 邮箱
 * @param {string} username - 用户名
 * @param {string} company - 公司/学校
 * @param {string} avatar - 头像URL
 * @param {string} code - 短信验证码
 * @returns {Promise} - 返回注册结果
 */
// 注册API（关键修改）
export const register = (phone, password, email, username, company, avatar, code, post) => {
  return new Promise((resolve, reject) => {
    uni.request({
      url: BASE_URL + '/register',
      method: 'POST',
      data: { 
        phone,
        password,
        name: username,    // 关键修改：匹配后端参数名
        headImg: avatar,
        company,
        code,
        post              // 后端需要此参数
      },
      success: (res) => {
        // 简化响应处理
        if (res.statusCode === 200) {
          resolve(res.data); // 原样传递响应数据
        } else {
          reject(new Error(`请求失败，状态码：${res.statusCode}`));
        }
      },
      fail: (err) => {
        reject(new Error('网络错误，请稍后重试'));
      }
    });
  });
};
